home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DS-CD ROM 2 1993 August
/
DS CD-ROM 2.Ausgabe (August 1993).iso
/
programm
/
ds0257
/
lib.exe
/
EXTDOS.BIB
< prev
next >
Wrap
Text File
|
1992-02-13
|
3KB
|
245 lines
#IF !LIB4A86
#ELSE
#IF !INTERN_LIB4A86_S
INTERN_LIB4A86_S EQU 01
JMP START
#ENDIF
#ENDIF
GETDRIVEART:
PUSH ES,BX
PUSH AX
GETDIBADRESS
POP AX
MOV AH,ES:DIB_LOGICALLWS
LES BX,ES:DIB_DRIVETABLE
DEC AL
CMP AH,AL
JB >L8
PUSH CX,BX,DX,AX
MOV AH,030H
INT 021H
CMP AL,03H
POP AX
MOV CL,DRIVETSIZE33
IF A MOV CL,DRIVETSIZE4XX
XOR CH,CH
XOR AH,AH
MUL CX
POP DX
POP BX
ADD BX,AX
POP CX
MOV AX,ES:DRIVE_USED
CLC
L8:
POP BX,ES
RET
GETHANDLENAME:
PUSH BX,CX,SI,DS
PUSH DI,ES
CLD
MOV SI,BX
GETPSPADRESS
MOV AL,0FFH
CMP SI,ES:PSP_MAXHANDLES
JA >L8
LDS BX,ES:PSP_HANDLETABADR
MOV AL,DS:[BX+SI]
CMP AL,0FFH
JE >L8
XOR AH,AH
PUSH AX
GETFIRSTSDLTABLE
POP AX
L0:
CMP CX,AX
JA >L1
SUB AX,CX
GETNEXTSDLTABLE
JNZ L0
MOV AL,0FEH
JMP >L8
L1:
PUSH AX,CX,BX
MOV AH,030H
INT 021H
CMP AL,03
POP BX,CX,AX
MOV CL,035H
IF A MOV CL,03BH
MUL CL
ADD AX,TYPE SDLHEADER
ADD BX,AX
CMP ES:SDLENTRY3_USED,0
JE >L8
ADD BX,OFFSET SDLENTRY3_NAME
MOV DS,ES
MOV SI,BX
POP ES,DI
PUSH DI,ES
MOV CX,0BH
REP MOVSB
CLC
JMP >L9
L8:
STC
L9:
POP ES,DI
POP DS,SI,CX,BX
RET
SEARCHCHARDEVICE:
PUSH DI
CLD
GETFIRSTDEVICEDRIVER
XOR CX,CX
L0:
INC CX
MOV AX,ES:DEVICE_ATTR
TEST AX,08000H
JZ >L1
MOV DI,BX
ADD DI,OFFSET DEVICE_NAME
PUSH SI
PUSH CX
MOV CX,4
REPE CMPSW
POP CX
POP SI
JE >L9
L1:
GETNEXTDEVICEDRIVER
IF NE JMP L0
L8:
STC
L9:
POP DI
RET
STANDARDIO?:
PUSH ES,BX
GETPSPADRESS
LES BX,ES:PSP_HANDLETABADR
MOV AX,ES:[BX]
POP BX,ES
RET
GETMAXFILE:
PUSH ES,BX
GETPSPADRESS
MOV CX,ES:PSP_MAXHANDLES
LES BX, ES:PSP_HANDLETABADR
PUSH CX
XOR AX,AX
L0:
CMP ES:B[BX],0FFH
IF NE INC AL
INC BX
LOOP L0
POP CX
POP BX,ES
RET
SETMAXFILE:
TEST BX,01
IF Z INC BX
MOV AH,067H
INT 021H
RET
COUNTBUFFERS:
PUSH ES,BX
GETDIBADRESS
PUSH CX,BX
MOV AH,030H
INT 021H
POP BX,CX
CMP AL,03H
JBE >L1
MOV AX,ES:DIB_BUFFERSPARM1
JMP >L9
L1:
LES BX, ES:DIB_FIRSTBUFFER
XOR AX,AX
L0:
INC AX
GETNEXTBUFFER3
JNZ L0
L9:
POP BX,ES
RET
COUNTSDL:
PUSH ES,BX,DI
MOV AX,01216H
MOV BX,0
INT 02FH
PUSH DI
MOV AX,01216H
MOV BX,01
INT 02FH
POP AX
SUB DI,AX
GETDIBADRESS
LES BX,ES:DIB_SDL
XOR CX,CX
XOR AX,AX
L0:
CMP BX,0FFFFH
JE >L9
PUSH W ES:SDLHEADER_NEXT
PUSH W ES:SDLHEADER_NEXT+2
ADD CX,ES:SDLENTRYS
PUSH CX
MOV CX,ES:SDLENTRYS
ADD BX,TYPE SDLHEADER
L01:
CMP W ES:SDLENTRY3_USED,0
IF NE INC AX
ADD BX,DI
LOOP L01
POP CX
POP ES
POP BX
JMP L0
L9:
POP DI,BX,ES
RET
COUNTFCBS:
PUSH ES,BX
GETFIRSTFCBSTABLE
XOR CX,CX
XOR AX,AX
L0:
ADD CX,ES:[BX+4]
ADD AX,ES:[BX+6]
GETNEXTFCBSTABLE
JNZ L0
L9:
POP BX,ES
RET
#IF !INTERN_CMARK0
INTERN_CMARK0 EQU 01H
INTERN_CMARK1:
PUSH BP
MOV BP,SP
MOV BX,06H
SUB CH,[BP+SI]
SUB AH,[BX+SI]
DEC SP
DEC CX
INC DX
XOR AL,041H
CMP B[02820H],DH
INC BX
SUB W[BX+SI],SP
INC DX
CS AND B[BP+DI+043H],DL
DEC AX
INC BP
DEC BP
DEC BP
INC BP
PUSH DX
AND B[BP+SI],CH
SUB CH,[BP+SI]
POP DX
MOV SP,BP
POP BP
RET
#ENDIF